

package com.zdkj.subway.check.entity;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.zdkj.common.core.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * 售票员结算表（主表）
 *
 * @author chenbo
 * @date 2020-02-01 19:24:00
 */
@Data
@TableName("sw_st_conductor_settle")
@ApiModel(value = "售票员结算表（主表）")
public class SwStConductorSettle{

    private static final long serialVersionUID = 1L;

    /**
     * 唯一标识
     */
    @TableId
    @ApiModelProperty(value = "唯一标识")
    @ExcelProperty("序号")
    private Integer id;
    /**
     * 线路编码，不能重复
     */
    @ExcelIgnore
    @ApiModelProperty(value = "线路编码，不能重复")
    private String lineCode;
    /**
     * 车站编码，不能重复
     */
    @ExcelIgnore
    @ApiModelProperty(value = "车站编码，不能重复")
    private String stationCode;


    /**
     * 售票员编号  存在合并的情况下 所有用string类型
     */
    @ExcelIgnore
    @ApiModelProperty(value = "售票员编号")
    private String conductorId;

    @ApiModelProperty(value = "售票员工号")
    @ExcelIgnore
    private String conductorJobNo;
    /**
     * 售票员姓名
     */
    @ExcelProperty("售票员")
    @ApiModelProperty(value = "售票员")
    private String conductorName;

    /**
     * 设备操作编号
     */
    @ExcelProperty("设备操作号")
    @ApiModelProperty(value = "设备操作编号")
    private String deviceOperateNum;

    /**
     * 售票员班次  存在合并的情况下所以用String
     */
    @ExcelProperty("售票员班次")
    @ApiModelProperty(value = "售票员班次")
    private String conductorShifts;

    /**
     * 售票员早晚班
     */
    @ExcelProperty("早晚班")
    @ApiModelProperty(value = "早晚班")
    private String morningAndEveningShifts;

    /**
     * 客运值班员名称
     */
    @ExcelProperty("客运值班员")
    @ApiModelProperty(value = "客运值班员名称")
    private String passengerAttendantName;
    /**
     * 客运值班员工号
     */
    @ExcelProperty("客运值班元工号")
    @ApiModelProperty(value = "客运值班员工号")
    private String passengerAttendantJobNo;

    /**
     * 在岗开始时间
     */
    @ApiModelProperty(value = "开始时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime workingStartTime;

    /**
     * 在岗结束时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "结束时间")
    private LocalDateTime workingEndTime;

    /**
     * 实收总金额
     */
    @ExcelProperty("实收总金额（元）")
    @ApiModelProperty(value = "实收总金额（元）")
    private BigDecimal realAmount;

    /**
     * 预收款金额
     */
    @ExcelProperty("预收款（元）")
    @ApiModelProperty(value = "预收款(元)")
    private BigDecimal adanceAmount;
    /**
     * BOM编号
     */
    @ExcelIgnore
    @ApiModelProperty(value = "BOM编号")
    private String bomCode;

    /**
     * 确认状态 0未确认 1确认
     */
    @ExcelIgnore
    @ApiModelProperty(value = "确认状态 0未确认 1确认")
    private String confirmStatus;

    /**
     * 结算时间
     */
    @ExcelIgnore
    @ApiModelProperty(value = "结算时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate settleTime;

    /**
     * 审批状态(未提交，已提交)
     */
    @ExcelProperty("状态")
    @ApiModelProperty(value = "审批状态(未提交，已提交)")
    private String approvalStatus;

    /**
     * 关联日营销车票数据录入的主表
     */
    @ExcelIgnore
    @ApiModelProperty(value = "关联营销车票主表ID")
    private String realtionMarketingId;

	 /**
     * 上岗时间
     */
    @ApiModelProperty(value = "上岗时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime guardTime;

	 /**
     * 上岗结束时间
     */
    @ApiModelProperty(value = "上岗结束时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime guardEndTime;

    /**
     * 备注
     */
    @ExcelIgnore
    @ApiModelProperty(value = "备注")
    private String remark;

    /**
     * 在岗开始时间
     */
    @ApiModelProperty(value = "开始时间 yyyy-MM-dd")
    @ExcelIgnore
    @TableField(exist = false)
    private String workingStartTimeDTO;

    /**
     * 在岗结束时间
     */
    @ApiModelProperty(value = "结束时间 yyyy-MM-dd")
    @ExcelIgnore
    @TableField(exist = false)
    private String workingEndTimeDTO;

    /**
     * 报表修改状态：默认0\r\n0：关闭\r\n1：打开，打开时可以编辑，保存时并记录日志
     */
    @ApiModelProperty(value = "报表修改状态：默认0\\r\\n0：关闭\\r\\n1：打开，打开时可以编辑，保存时并记录日志")
    private String reportModifyStatus;

    /**
     * 更新人工号
     */
    @ApiModelProperty(value="更新人工号")
    private String entryUpdateJobNo;

    /**
     * 更新人名称
     */
    @ApiModelProperty(value="更新人名称")
    private String entryUpdateJobName;

    /**
     * 更新时间
     */
    @ApiModelProperty(value="更新时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date entryUpdateTime;

    /**
     * 是否是合并数据  1：是 0 否 默认0
     */
    @ApiModelProperty(value = "是否是合并数据  1：是 0 否 默认0")
    private String isMerge;

    /**
     * 被合并的数据ID ,中间用逗号隔开 对应合并后的数据，存储对应的被合并的数据ID
     */
    @ApiModelProperty(value="被合并的数据ID ,中间用逗号隔开 对应合并后的数据，存储对应的被合并的数据ID")
    private String isBeMergedId;

    /**
     * 合并前的班次，中间用逗号隔开
     */
    @ApiModelProperty(value="合并前的班次，中间用逗号隔开")
    private String mergeConductorShifts;

    /**
     * 查询来源虚拟字段  1：报表差错跳转   
     */
    @ApiModelProperty(value="查询来源  1：报表差错跳转")
    @TableField(exist = false)
    private String sourceQueryFlag;


    /**
     * 售票员结算单，同一售票员、设备操作号、日期是否有存在合并的数据   
     */
    @ApiModelProperty(value="售票员结算单，同一售票员、设备操作号、日期是否有存在合并的数据  1：需要合并  0：不需要合并")
    @TableField(exist = false)
    private String isNeedMerge;

    /**
     * 电子金额
     */
    @ApiModelProperty(value="电子金额")
    @TableField(exist = false)
    private BigDecimal electronicAmount;

    /**
     * 删除状态
     */
    @ApiModelProperty(value = "删除状态")
    private String delFlag;

    /**
     * 作废状态
     */
    @ApiModelProperty(value = "作废状态")
    private String invalidStatus;


}
